﻿using Common.Contract.Authentication.Record;
using Common.Contract.SystemConfig.Record;
using Customer.Model.Model;
using System.Collections.Generic;

namespace Customer.Model.Interface
{
    public interface IPortfolioProvider
    {
        List<AccountPlanning> RetrieveAccountPlanningByDao(out int totalRecord, UserRecord dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0);
        List<AccountPlanning> RetrieveAccountPlanningByCif(string cif);
        List<AccountPlanningFinance> RetrieveAccountPlanningFinanceByCif(string cif);
        List<AccountPlanningFinanceResult> RetrieveAccountPlanningFinanceResultByCif(string cif);
        List<AccountPlanningProductHolding> RetrieveAccountPlanningProductHoldingByCif(string cif);
        List<AccountPlanningProductHoldingResult> RetrieveAccountPlanningProductHoldingResultByCif(string cif);
        bool UpdateAccountPlanning(AccountPlanning dataUpdate);
        bool UpdateAccountPlanningFinance(Dictionary<string, AccountPlanningFinance> dataUpdate, string cif);
        bool UpdateAccountPlanningProductHolding(Dictionary<string, AccountPlanningProductHolding> dataUpdate, string cif);
        AccountPlanningHistory RetrieveLastChangeByCif(string cif, int type);
        List<AccountPlanningHistory> RetrieveAccountPlanningHistoryByCif(string cif);
        List<AccountPlanningHistory> RetrieveAccountPlanningHistoryByTypeCif(string cif, string type);
        bool SaveAccountPlanningHistory(AccountPlanningHistory obj);
    }
}
